#ifndef __ALGO3__METODOS__
#define __ALGO3__METODOS__

#include "grafo.h"
#include "common.h"

/*======================================================================
  Sobre las interfaces comunes a los metodos:
   
  Todos los metodos toman el grafo, pero ademas toman una componente del
  grafo sobre la cual resuelven. El proposito de esto es que
  podamos resolver cada componente del grafo por separado.
======================================================================*/

//Metodo exacto de resolucion
vint exacto(const Grafo &, const vint &);
//Metodo goloso constructivo
vint goloso(const Grafo &, const vint &);
//Metodo por busqueda local
int iteracionesLocal(int); //Setea la cantida de iteraciones de la 
						   //busqueda local
vint local (const Grafo &, const vint &);
//Metaheuristica GRASP
void iteracionesGrasp(int); 	//Setea la cantidad de iteraciones del 
								//metodo GRASP.
void iteracionesLocalGrasp(int);//Setea la cantidad de iteraciones de
								//la busqueda local dentro de GRASP.
void porcentajeGrasp(int);		//Setea que porcentaje toma el goloso
								//randomizado dentro del GRASP.
vint grasp (const Grafo &, const vint &);

#endif
